/**
 * 版权所有(C)，上海勾芒信息科技，2017，所有权利保留。
 * 
 * 项目名：	cards-web
 * 文件名：	AuthorizerAccessTokenStorageFactory.java
 * 模块说明：	
 * 修改历史：
 * 2017年5月25日 - Debenson - 创建。
 */
package com.alex.wechat.component.config;

import org.springframework.beans.factory.annotation.Autowired;

import com.alex.wechat.app.account.entity.WxAppAccountEntity;
import com.alex.wechat.app.account.service.WxAppAccountServiceI;
import com.alex.wechat.component.config.impl.WxAppAuthorizerAccessTokenStorage;
import com.gomore.jeecg.common.Assert;

/**
 * 第三方开发平台的授权凭证存储管理者工厂。
 * 
 * @author Debenson
 * @since 0.1
 */
public class AuthorizerAccessTokenStorageFactory {

  @Autowired
  private WxAppAccountServiceI appAccountService;

  public AuthorizerAccessTokenStorage getStorage(String appId) {
    Assert.assertArgumentNotEmpty(appId, "appId");

    WxAppAccountEntity appAccount = getAppAcount(appId);
    if (appAccount != null) {
      return new WxAppAuthorizerAccessTokenStorage(appAccount);
    }

    // TODO 公众号

    return null;
  }

  private WxAppAccountEntity getAppAcount(String appId) {
    return appAccountService.getAccountByAppId(appId);
  }

}
